<?php
/**
 * 题目操作模块
 * User: cqfut
 * Date: 2019/4/6
 * Time: 17:52
 */
require_once (ROOTDIR."common/db_utils.php");
class ProblemModel
{

    public function __construct()
    {

    }

    /***
     * 添加题目
     * @param $title 题目标题
     * @param $desc  题目描述
     * @param $input 输入
     * @param $output 输出
     * @param $sampleIn 样例输入
     * @param $sampleOut 样例输出
     * @param $hint 提示
     * @param $category 题目类别
     * @param $fromoj 题目来源
     * @param $timeLimit 时间限制
     * @param $memLimit 内存限制
     * @param $level 难度等级
     * @param bool $spj 是否进行特殊判断
     * @return int 题目ID
     */
    function addProblem(
        $title, $desc, $input, $output, $sampleIn, $sampleOut,
        $hint, $category, $source,
        $timeLimit, $memLimit, $level, $creterId, $spj = 0)
    {
        $colNames = array();
        $args = array();

        array_push($colNames, 'title','time_limit','memory_limit',	'description');
        array_push($args, $title, $timeLimit, $memLimit, $desc);

        array_push($colNames, 'input','output', 'sample_input', 'sample_output');
        array_push($args, $input, $output, $sampleIn, $sampleOut);

        array_push($colNames, 'hint');
        array_push($args, $hint);

        // 因为遗留问题
        // 数据库中使用source表示题目类别 source --> category
        // 使用 fromoj 表示题目来源 from --> source
        // 该处需要在后期进行更改
        array_push($colNames, 'source', 'fromoj', 'creater_id');
        array_push($args, $category, $source, $creterId);

        array_push($colNames, 'level', 'spj');
        array_push($args, $level, $spj);

        array_push($colNames, 'in_date', 'defunct');
        array_push($args, date("Y-m-d h:i:s"), 'Y');

        $sql = DbUtil::genInsertSql($colNames, 'problem');
        $pid = DbUtil::getInstance()->query2( $sql, $args);
        return $pid;
    }
}